Audio apparatus for portable devices

ABSTRACT

An audio apparatus for a portable device is provided. The portable device includes computing hardware coupled to associated data memory, which stores one or more audio or computer program products that include a plurality of audio libraries. The audio apparatus is operable to execute the audio products upon the computing hardware, whereby the audio products are operable to call the audio libraries to generate digital audio data. The digital audio data so generated is provided to sound-generating hardware, which is then operable to generate acoustic audio signals corresponding to the digital audio data. The audio apparatus is operable to host one or more replacement audio products, which are storable in the data memory. The audio apparatus is operable to invoke the replacement audio products as an alternative to the audio products for generating the digital audio data. The replacement audio products are operable to provide a functionality of capturing the digital audio data whilst substantially generating the acoustic audio signals.

CROSS-REFERENCE TO RELATED APPLICATION(S)

This application is related to U.S. patent application Ser. No.13/765,703 filed on 13 Feb. 2013 entitled “System and Method for SharingGameplay Experiences” and incorporated by reference in its entirety;U.S. patent application Ser. No. 13/765,705 filed on 13 Feb. 2013entitled “System and Method for Sharing Score Experiences” andincorporated by reference in its entirety; and U.S. patent applicationSer. No. 13/765,708 filed on 13 Feb. 2013 entitled “System and Methodfor Managing Game-Playing Experiences” and incorporated by reference inits entirety.

FIELD

The aspects of the present disclosure generally relate to audioapparatus for portable devices, and more specifically, to an audioapparatus that is operable to provide a functionality of capturingdigital audio data. Moreover, the aspects of the present disclosurerelate to a method of operating the audio apparatus thereof.Furthermore, the aspects of the present disclosure also relate to asoftware or computer program product including computer readable codemeans stored on non-transitory machine-readable data storage media,wherein the software or computer program product is executable uponcomputing hardware to implement the aforesaid method.

BACKGROUND

Various operating systems (OS) and audio apparatus have been developedto support portable devices that we see today. Typically, an audioapparatus for a portable device includes one or more High Level AudioLibraries (HLALs) and/or one or more Low Level Audio Libraries (LLALs).These audio libraries can be called by various applications running onan OS of the portable device, to generate human-audible sounds. TheHLALs provide a wide variety of audio generation tools, for example,such as music playback. On the other hand, the LLALs provide variousways to generate and manipulate audio, depending on inputs provided by auser via a direct manipulation interface.

FIG. 1 (Prior Art) is a schematic illustration of a conventional audioapparatus for a portable device. The conventional audio apparatusincludes an audio engine 102, an HLAL 104, an LLAL 106, an audio driver108, an audio adapter 110, and an audio endpoint 112. The audio engine102 may reside in an OS space, as shown in FIG. 1. The audio driver 108may be software-enabled in a kernel. The audio driver 108 is interfacedwith the audio endpoint 112 through the audio adapter 110. The audioadapter 110 may be hardware, such as a plug or a bus, while the audioendpoint 112 may be hardware, such as a speaker or a headphone.

Let us consider, for example, that an application (not shown in FIG. 1)is running on an OS of the portable device. The application may, forexample, be a gaming application that may require generation ofhuman-audible sounds during playing of a game. Let us also consider thatthe application calls the audio engine 102 to generate human-audiblesounds via the conventional audio apparatus. In some cases, the audioengine 102 may be a part of the application itself.

Depending on type of audio processing to be performed, the audio engine102 may:

(a) call the LLAL 106 directly, or

(b) call the HLAL 104, which may then generate instructions forproducing digital audio data, and call the LLAL 106.

Subsequently, the LLAL 106 may generate, modify or pass through thedigital audio data to the audio driver 108. Consequently, the audiodriver 108 controls the audio adapter 110 and/or the audio endpoint 112to generate acoustic audio signals corresponding to the digital audiodata.

The audio engine 102 acts as an interface between the application andthe audio apparatus. Optionally, the audio engine 102 could simply be aroutine of the application calling the HLAL 104 or the LLAL 106.Alternatively, the audio engine 102 could be a full-featured sub-programof the application responsible for one or more of:

(a) reading and/or writing the digital audio data,

(b) performing Digital Signal Processing (DSP) on the digital audiodata, and/or

(c) mixing multiple streams of the digital audio data into a singleaudio stream to be rendered into human-audible sounds.

The audio engine 102 may be either created by an author of theapplication, or licensed from a third party. In many instances, theaudio engine 102 may not provide any interface to capture the digitalaudio data generated by the conventional audio apparatus.

Conventional techniques for facilitating such audio capturing requiremodifying the application and/or the audio engine 102 to include audiocapturing capabilities. For this purpose, an additional software modulehas to be included as a part of the application. In addition, the audioengine 102 has to be modified to call the additional software module tocapture audio during the execution of the application.

However, these conventional techniques suffer from a number ofdisadvantages. Firstly, the application and/or the audio engine 102 arerequired to be modified extensively. Secondly, making such extensivemodifications is difficult, time consuming and tedious. Thirdly, ininstances where the audio engine 102 is licensed from a third party,source code of the audio engine 102 is often closed, and, therefore,cannot be modified by the author of the application. Fourthly, theadditional software module has to be executed upon computing hardware ofthe portable device during the execution of the HLAL 104 and/or the LLAL106. This leads to potential performance degradation of the application.

Therefore, there exists a need for an audio apparatus for a portabledevice that is capable of facilitating audio capturing in a transparentmanner.

SUMMARY

The aspects of the present disclosure seek to provide an audio apparatusfor a portable device.

The aspects of the present disclosure also seek to provide an audioapparatus that is operable to provide a functionality of capturingdigital audio data.

The aspects of the present disclosure also seek to provide a method ofoperating an audio apparatus thereof.

In one aspect, embodiments of the present disclosure provide an audioapparatus for a portable device. Examples of the portable deviceinclude, but are not limited to, a mobile terminal, a mobile telephone,a smart phone, a Mobile Internet Device (MID), a phablet computer, atablet computer, an Ultra-Mobile Personal Computer (UMPC), a PersonalDigital Assistant (PDA), a web pad, a handheld personal computer, alaptop computer, an interactive entertainment computer, and a gamingterminal.

The portable device includes computing hardware, such as a controller orprocessor, coupled to associated data memory, which stores one or moreaudio software modules and products generally in the form of computerreadable code means that include a plurality of audio libraries. When anapplication, such as a gaming application, requires generation ofacoustic audio signals, the audio apparatus executes the audio softwareproducts upon the computing hardware. Consequently, the audio softwaremodules and products call the audio libraries to generate digital audiodata. The digital audio data so generated is provided tosound-generating hardware, which then generates acoustic audio signalscorresponding to the digital audio data.

The sound-generating hardware may include at least one audio driverand/or at least one audio adapter coupled to at least one audio endpointof the portable device for generating the acoustic audio signals. The atleast one audio driver and/or the at least one audio adapter may beoperable to process the digital audio data.

Let us consider an example scenario in which the audio software productsare proprietary software, which are configured in a manner that hindersusing the audio software products to capture the digital audio datagenerated by the audio apparatus.

In order to capture the digital audio data, the audio apparatus isoperable to host one or more replacement software products, which arestorable in the data memory. The audio apparatus is operable to invokethe replacement software products as an alternative to the audiosoftware products for generating the digital audio data. Thereafter, thereplacement software products are operable to provide a functionality ofcapturing the digital audio data whilst substantially generating theacoustic audio signals.

The audio software modules and products may, for example, include a HighLevel Audio Library (HLAL) and a Low Level Audio Library (LLAL). TheHLAL may be operable to generate instructions for producing the digitalaudio data, and to send the digital audio data and/or the instructionsto the LLAL. Subsequently, the LLAL may be operable to generate ormodify or pass through the digital audio data to the sound-generatinghardware to generate the acoustic audio signals.

On the other hand, the replacement software modules and products mayinclude a Replacement High Level Audio Library (RHLAL) and/or a WrapperLibrary (WL). The RHLAL may be operable to provide ApplicationProgramming Interfaces (APIs) that are substantially similar to APIs ofthe HLAL, while the WL may be operable to override function calls to theLLAL to pass through the WL.

The RHAL and/or the WL may be simply included in an Application BinaryInterface (ABI) of the application, for example, when the application islinked together with object code libraries. Such linking may, forexample, be performed when an executable file is created, or wheneverthe application is used at run time.

In addition, the replacement software modules and products may includean audio capture component for capturing the digital audio data. Thedigital audio data so captured may then be stored in the data memorycoupled to the computing hardware and/or be used to regenerate acousticaudio signals by the sound-generating hardware.

In another aspect, embodiments of the present disclosure provide amethod of operating the audio apparatus for the portable device.

In yet another aspect, embodiments of the present disclosure provide asoftware or computer program product including computer readable programcode means stored on non-transitory machine-readable data storage media,wherein the software or computer program product is executable uponcomputing hardware of the portable device for implementing theaforementioned method. The software or computer program product may, forexample, be downloadable from a software application store to theportable device.

Embodiments of the present disclosure substantially eliminate theaforementioned problems in the prior art, and enable users to capturedigital audio data generated during game-playing, without degradingperformance of their portable devices, and facilitate the functionalityof capturing the digital audio data, without any requirement to modifyapplications and/or audio engines, apart from simply including the RHALand/or the WL in the ABI of the application.

Additional aspects, advantages, features and aspects of the presentdisclosure would be made apparent from the drawings and the detaileddescription of the illustrative embodiments construed in conjunctionwith the appended claims that follow.

It will be appreciated that features of the present disclosure aresusceptible to being combined in various combinations without departingfrom the scope of the present disclosure as defined by the appendedclaims.

BRIEF DESCRIPTION OF THE DRAWINGS

The summary above, as well as the following detailed description ofillustrative embodiments, is better understood when read in conjunctionwith the appended drawings. For the purpose of illustrating the aspectsof the present disclosure, exemplary constructions of the disclosure areshown in the drawings. However, the aspects of the present disclosureare not limited to specific methods and instrumentalities disclosedherein. Moreover, those in the art will understand that the drawings arenot to scale. Wherever possible, like elements have been indicated byidentical numbers.

Embodiments of the present disclosure will now be described, by way ofexample only, with reference to the following diagrams wherein:

FIG. 1 (Prior Art) is a schematic illustration of a conventional audioapparatus for a portable device;

FIG. 2 is a schematic illustration of a portable device that may besuitable for implementing an audio apparatus, in accordance with anembodiment of the present disclosure;

FIG. 3 is a schematic illustration of an audio apparatus for theportable device, in accordance with an embodiment of the presentdisclosure; and

FIG. 4 is an illustration of steps of a method of operating the audioapparatus, in accordance with an embodiment of the present disclosure.

In the accompanying drawings, an underlined number is employed torepresent an item over which the underlined number is positioned or anitem to which the underlined number is adjacent. A non-underlined numberrelates to an item identified by a line linking the non-underlinednumber to the item. When a number is non-underlined and accompanied byan associated arrow, the non-underlined number is used to identify ageneral item at which the arrow is pointing.

DETAILED DESCRIPTION OF EMBODIMENTS OF THE DISCLOSURE

The following detailed description illustrates embodiments of thepresent disclosure and ways in which it can be implemented. Although thebest mode of carrying out the present disclosure has been disclosed,those in the art would recognize that other embodiments for carrying outor practicing the aspects of the present disclosure are also possible.

Embodiments of the present disclosure provide an audio apparatus for aportable device. Examples of the portable device include, but are notlimited to, a mobile terminal, a mobile telephone, a smart phone, aMobile Internet Device (MID), a phablet computer, a tablet computer, anUltra-Mobile Personal Computer (UMPC), a Personal Digital Assistant(PDA), a web pad, a handheld personal computer, a laptop computer, aninteractive entertainment computer, and a gaming terminal.

The portable device includes computing hardware coupled to associateddata memory, which stores one or more audio products and modules, suchas software and computer program products that include a plurality ofaudio libraries. In one embodiment, the software products and modulescomprise computer program products including computer readable programcode means, the computer readable program code means being stored on acomputer readable storage medium for carrying out and executing theprocesses and instructions described herein. In one embodiment, theaudio apparatus is operable to execute the audio software products uponthe computing hardware, whereby the audio software products are operableto call the audio libraries to generate digital audio data. The digitalaudio data so generated is provided to sound-generating hardware, whichis then operable to generate acoustic audio signals corresponding to thedigital audio data.

The sound-generating hardware may include at least one audio driverand/or at least one audio adapter coupled to at least one audio endpointof the portable device for generating the acoustic audio signals. The atleast one audio driver and/or the at least one audio adapter may beoperable to process the digital audio data.

Additionally, there could be scenarios where a sound is captured from amicrophone of the portable device to generate digital audio data forcapturing in the data memory, whilst other digital audio data is beinggenerated by the audio engine to generate acoustic audio signals from aloudspeaker of the portable device and to be captured in the datamemory.

Let us consider an example scenario in which the audio software productsare proprietary software, which are configured in a manner that hindersusing the audio software products to capture the digital audio datagenerated by the audio apparatus.

In order to capture the digital audio data, the audio apparatus isoperable to host one or more replacement audio products and devices,such as software and computer program products, which are storable inthe data memory. The audio apparatus is operable to invoke thereplacement software products as an alternative to the audio softwareproducts for generating the digital audio data. Thereafter, thereplacement software products are operable to provide a functionality ofcapturing the digital audio data, whilst substantially generating theacoustic audio signals.

The audio products may, for example, include a High Level Audio Library(HLAL) and a Low Level Audio Library (LLAL). The HLAL may be operable togenerate instructions for producing the digital audio data, and to sendthe digital audio data and/or the instructions to the LLAL.Subsequently, the LLAL may be operable to generate or modify or passthrough the digital audio data to the sound-generating hardware togenerate the acoustic audio signals.

On the other hand, the replacement software products may include aReplacement High Level Audio Library (RHLAL) and a Wrapper Library (WL).The RHLAL may be operable to provide Application Programming Interfaces(APIs) that are substantially similar to APIs of the HLAL, while the WLmay be operable to override function calls to the LLAL to pass throughthe WL.

In addition, the replacement software products may include an audiocapture component for capturing the digital audio data, during thegeneration of the acoustic audio signals. The digital audio data socaptured may then be stored in the data memory coupled to the computinghardware and/or be used to regenerate acoustic audio signals by thesound-generating hardware.

Referring now to the drawings, particularly by their reference numbers,FIG. 2 is a schematic illustration of various components of a portabledevice 200 that may be suitable for implementing an audio apparatus, inaccordance with an embodiment of the present invention. The portabledevice 200 includes, but is not limited to, a memory 202, computinghardware such as a processor 204, Input/Output (I/O) devices 206, anetwork interface 208, and a system bus 210 that operatively couplesvarious components including the memory 202, processor 204, the I/Odevices 206 and the network interface 208.

The memory 202 may include non-removable memory, removable memory, or acombination thereof. The non-removable memory may, for example, includeRandom-Access Memory (RAM), Read-Only Memory (ROM), flash memory, or ahard drive. The removable memory may, for example, include flash memorycards, memory sticks, or smart cards.

The memory 202 stores an Operating System (OS) 212 that, when executedon processor 204, provides an interface on which various applicationsmay be run. In addition, the OS 212 may include a user interface (notshown in FIG. 2) that provides a user of the portable device 200 withone or more options to choose amongst.

For example, the user interface may allow the user to download a gamingapplication from a remote server, and play a game by executing thegaming application. In addition, the user may be provided an option tocapture digital audio data generated during playing of the game. Detailsof how the digital audio data may be captured have been provided inconjunction with FIG. 3. The digital audio data so captured may then bestored in the memory 202.

In addition, the captured digital audio data may be shared with otherusers using other portable devices via the network interface 208. Thenetwork interface 208 may allow the portable device 200 to communicatewith other portable devices, for example, via a communication network(not shown in FIG. 2). In addition, the network interface 208 may allowthe portable device 200 to upload the captured digital audio data to theremote server, over the communication network.

The communication network can be a collection of individual networks,interconnected with each other and functioning as a single largenetwork. Such individual networks may be wired, wireless, or acombination thereof. Examples of such individual networks include, butare not limited to, Local Area Networks (LANs), Wide Area Networks(WANs), Metropolitan Area Networks (MANs), Wireless LANs (WLANs),Wireless WANs (WWANs), and Wireless MANs (WMANs).

The portable device 200 may be implemented by way of at least one of: amobile terminal, a mobile telephone, a smart phone, an MID, a phabletcomputer, a tablet computer, a UMPC, a PDA, a web pad, a handheldpersonal computer, a laptop computer, an interactive entertainmentcomputer, and a gaming terminal.

FIG. 2 is merely an example, which should not unduly limit the scope ofthe claims herein. It is to be understood that the specific designationfor the portable device 200 is for the convenience of reader and is notto be construed as limiting the portable device 200 to specific numbers,types, or arrangements of modules and/or components of the portabledevice 200. One of ordinary skill in the art would recognize manyvariations, alternatives, and modifications of embodiments of thepresent invention.

FIG. 3 is a schematic illustration of an audio apparatus for theportable device 200, in accordance with an embodiment of the presentinvention. The audio apparatus includes an audio engine 302, one or moreaudio software products or modules including an HLAL 304 and an LLAL306, and one or more replacement software products including an RHLAL308, a WL 310 and an audio capture component 312. In one embodiment, thesoftware products or modules comprise computer program productsincluding computer readable program code means. The computer readableprogram code means can comprise machine readable instructions, that whenexecuted on computer hardware such as a processor, are configured toexecute the process steps described herein. The audio engine 302, theHLAL 304, the LLAL 306, the RHLAL 308, the WL 310 and the audio capturecomponent 312 are stored in the memory 202, and reside in the OS 212, asshown in FIG. 3.

For example, the audio engine 302 may be a cross-platform audio engine,such as FMOD audio engine, Irrlicht audio engine, Beatnik audio engineand the like. The HLAL 304 may be implemented via cross-platform audioAPIs, such as Open Audio Library (OpenAL) API, AV Foundation frameworkAPI, CocosDenshion API and the like. The LLAL 306 may, for example, beimplemented via Core Audio API, DirectX Audio API and the like.

In addition, the audio apparatus includes sound-generating hardware thatincludes an audio driver 314 and an audio adapter 316 coupled to anaudio endpoint 318. The audio driver 314 may be software-enabled in akernel. The audio driver 314 may be a system-supplied driver component,a vendor-supplied driver component, or a combination thereof. The audiodriver 314 is interfaced with the audio endpoint 318 through the audioadapter 316. The audio adapter 316 may be hardware, such as a plug or abus, while the audio endpoint 318 may be hardware, such as a speaker ora headphone.

Let us consider, for example, that an application (not shown in FIG. 3)is running on the OS 212 of the portable device 200. The applicationmay, for example, be a gaming application that may require generation ofacoustic audio signals during playing of a game. Let us also considerthat the application calls the audio engine 302 to generate the acousticaudio signals. The audio engine 302 acts as an interface between theapplication and the audio apparatus.

It may be noted here that the audio engine 302 may optionally beimplemented, at least in part, in the application. Alternatively, theaudio engine 302 may be implemented as an entirely separate routine fromthe application. The audio engine 302 may be either created by an authorof the application, or licensed from a third party.

Upon being called by the application, the audio engine 302 calls theHLAL 304 or the LLAL 306. In a case where the HLAL 304 is called, theHLAL 304 may be operable to generate instructions for producing digitalaudio data and to send the instructions to the LLAL 306 to generate thedigital audio data for the sound-generating hardware. The audio driver314 and/or the audio adapter 316 may then be operable to process thedigital audio data, and generate the acoustic audio signalscorresponding to the digital audio data via the audio endpoint 318.

Let us consider an example scenario in which the audio software productsare proprietary software, which are configured in a manner that hindersusing the audio software products to capture the digital audio datagenerated by the audio apparatus. Let us also consider that the user ofthe portable device 200 opts to capture the digital audio data generatedduring playing of the game.

In order to capture the digital audio data, the audio apparatus isoperable to host the replacement software products including the RHLAL308 and the WL 310, and to invoke the replacement software products asan alternative to the audio software products for generating the digitalaudio data.

Upon being invoked, the RHLAL 308 is operable to provide APIs that aresubstantially similar to APIs of the HLAL 304. Consequently, the RHLAL308 may be capable of generating acoustic audio signals that aresubstantially human-audibly similar to acoustic audio signals generatedby the HLAL 304. In this manner, the RHLAL 308 transparently replacesthe HLAL 304, such that function calls originally intended for the HLAL304 are received by the RHLAL 308.

In addition, the WL 310 is operable to override function calls to theLLAL 306 to pass through the WL 310. In this manner, the WL 310transparently wraps around the LLAL 306, such that function callsoriginally intended for the LLAL 306 are received by the WL 310 beforebeing passed by the WL 310 to the LLAL 306. This enables the WL 310 toconfigure the LLAL 306 to send the generated digital audio data to theaudio capture component 312, thereby facilitating capturing of thedigital audio data generated by the LLAL 306.

In addition, the RHLAL 308 and/or the WL 310 may be included in anApplication Binary Interface (ABI) of the application, for example, whenthe application is linked together with object code libraries. Suchlinking may, for example, be performed when an executable file iscreated, or whenever the application is used at run time. Consequently,the RHLAL 308 and/or the WL 310 may become a part of the application,for example, as implemented by software developers.

Now, when the application calls the audio engine 302 to generate theacoustic audio signals, the audio engine 302, intending to call the HLAL304 or the LLAL 306, instead transparently calls the RHLAL 308 or the WL310, depending on the type of audio processing to be performed and/orone or more characteristics of the digital audio data to be generated.

In a first case where the RHLAL 308 is called and executed on thecomputing hardware, the RHLAL 308 is operable to provide instructions tothe LLAL 306 to generate or modify or pass through the digital audiodata to the sound-generating hardware. The RHLAL 308 configures the LLAL306 to send the generated digital audio data to the audio capturecomponent 312, thereby facilitating capturing of the digital audio datagenerated by the LLAL 306.

The execution of the RHLAL 308 does not lead to measurable performancedegradation, as the RHLAL 308 replaces the HLAL 304.

In a second case where the WL 310 is called and executed on thecomputing hardware, the WL 310 is operable to call the LLAL 306 togenerate the digital audio data. Additionally, the WL 310 is operable toprovide instructions to LLAL 306 to send the generated digital audiodata to the audio capture component 312, thereby facilitating capturingof the digital audio data generated by the LLAL 306.

In addition, the WL 310 does not lead to performance degradation, as theWL 310 does not generate the digital audio data.

It may be noted here that the audio capture component 312 maybeneficially be implemented within the replacement software products.Alternatively, the audio capture component 312 may be implementedentirely separately from the replacement software products.

Beneficially, the audio capture component 312 may be operable to capturethe digital audio data during the generation of the acoustic audiosignals by the audio apparatus. The audio capture component 312 may alsobe operable to store the captured digital audio data in the memory 202.The digital audio data may then be used to regenerate acoustic audiosignals by the sound-generating hardware at a later time.

Additionally, there could be scenarios where a sound is captured from amicrophone of the portable device 200 to generate digital audio data forcapturing in the memory 202, whilst other digital audio data is beinggenerated by the audio engine 302 to generate acoustic audio signalsfrom a loudspeaker of the portable device 200 and to be captured in thememory 202.

It may be noted here that the application, the audio engine 302, theHLAL 304 or the LLAL 306 are not required to be modified. As describedearlier, the RHLAL 308 and/or the WL 310 are linked to the application,thereby transparently replacing the HLAL 304 and/or wrapping around theLLAL 306. This results in the audio engine 302 calling the RHLAL 308and/or the WL 310, instead of the HLAL 304 or the LLAL 306, whenrequired.

FIG. 3 is merely an example, which should not unduly limit the scope ofthe claims herein. It is to be understood that the specific designationfor the audio apparatus is for the convenience of reader and is not tobe construed as limiting the audio apparatus to specific numbers, types,or arrangements of modules, routines, software products, componentsand/or APIs of the audio apparatus. One of ordinary skill in the artwould recognize many variations, alternatives, and modifications ofembodiments of the present invention.

For example, a video apparatus could be implemented on the portabledevice 200 in a manner similar to the audio apparatus, to capturedigital video data generated during the playing of the game. The digitalvideo data so captured could then be uploaded to a remote server and/orshared with other users, as described earlier.

FIG. 4 is an illustration of steps of a method of operating the audioapparatus, in accordance with an embodiment of the present invention.The method is depicted as a collection of steps in a logical flowdiagram, which represents a sequence of steps that can be implemented inhardware, software, or a combination thereof, such as machine-readableinstructions that are executable in a processor device.

As described earlier, the audio apparatus includes the audio softwareproducts, which includes the HLAL 304 and/or the LLAL 306. Let usconsider the previous example scenario in which the audio softwareproducts are proprietary software that are configured in a manner thathinders using the audio software products to capture digital audio datagenerated by the audio apparatus.

In order to capture the digital audio data, the audio apparatus is usedto host the replacement software products, at a step 402. In accordancewith the step 402, the replacement software products include the RHLAL308 and/or the WL 310 along with the audio capture component 312. Asdescribed earlier, these replacement software products may be optionallylinked to the application to become a part thereof.

For illustration purposes, let us consider that the application callsthe audio engine 302 to generate the acoustic audio signals.Consequently, at a step 404, the audio apparatus operates to invoke thereplacement software products as an alternative to the audio softwareproducts for generating the digital audio data.

As described earlier, the RHLAL 308 is operable to provide APIs that aresubstantially similar to APIs of the HLAL 304. The RHLAL 308transparently replaces the HLAL 304, such that function calls originallyintended for the HLAL 304 may be received by the RHLAL 308.

In addition, the WL 310 is operable to override function calls to theLLAL 306 to pass through the WL 310. The WL 310 transparently wrapsaround the LLAL 306, such that function calls originally intended forthe LLAL 306 may be received by the WL 310.

In accordance with the step 404, the audio engine 302 calls the RHLAL308 or the WL 310, depending on type of audio processing to be performedand/or one or more characteristics of the digital audio data to begenerated.

Next, at a step 406, the digital audio data is generated as describedbelow.

If, at the step 404, the RHLAL 308 is called, the RHLAL 308 operates toprovide instructions to the LLAL 306 to generate or modify or passthrough the digital audio data to the sound-generating hardware, at thestep 406. Additionally, the RHLAL 308 operates to configure the LLAL 306to send the digital audio data generated at the step 406 to the audiocapture component 312.

If, at the step 404, the WL 310 is called, the WL 310 operates to callthe LLAL 306 to generate or pass through the digital audio data to thesound-generating hardware, at the step 406. Additionally, the WL 310operates to configure the LLAL 306 to send the digital audio datagenerated at the step 406 to the audio capture component 312.

Subsequently, at a step 408, the audio capture component 312 operates tocapture the digital audio data generated at the step 406.

Meanwhile, at a step 410, the sound-generating hardware operates togenerate the acoustic audio signals corresponding to the digital audiodata, as described earlier.

Beneficially, the audio capture component 312 may operate to capture thedigital audio data during the generation of the acoustic audio signals.Accordingly, the steps 408 and 410 may be performed simultaneously.

In addition, the method may include a step at which the digital audiodata captured at the step 408 are stored in the memory 202.

Further, the method may include one or more steps at which the digitalaudio data captured at the step 408 may be uploaded to a remote serverand/or shared with other users, as described earlier.

It should be noted here that the steps 402 to 410 are only illustrativeand other alternatives can also be provided where one or more steps areadded, one or more steps are removed, or one or more steps are providedin a different sequence without departing from the scope of the claimsherein.

Embodiments of the present disclosure provide a software or computerprogram product including machine-readable instructions stored onnon-transitory machine-readable data storage media, wherein themachine-readable instructions of the software product are executableupon the computing hardware, such as a processor, of the portable device200 for implementing the method as described in conjunction with FIG. 4.In one embodiment portable device 200 is generally configured to utilizeprogram storage devices embodying machine-readable program source codethat is adapted to cause the apparatus to perform and execute the methodsteps and processes disclosed herein. The program storage devicesincorporating aspects of the disclosed embodiments may be devised, madeand used as a component of a machine utilizing optics, magneticproperties and/or electronics to perform the procedures and methodsdisclosed herein. In alternate embodiments, the program storage devicesmay include magnetic media, such as a diskette, disk, memory stick orcomputer hard drive, which is readable and executable by a computer. Inother alternate embodiments, the program storage devices could includeoptical disks, read-only-memory (“ROM”) floppy disks and semiconductormaterials and chips.

The software product may, for example, be downloadable from a softwareapplication store, for example from an “App store”, to the portabledevice 200. The computer program product or software incorporating theprocesses and method steps incorporating aspects of the disclosedembodiments may be stored in one or more computer systems or on anotherwise conventional program storage device.

Embodiments of the present disclosure can be used for various purposes,including, though not limited to, enabling users to capture digitalaudio data generated during game-playing, without measurably degradingperformance of their portable devices, and facilitating thefunctionality of capturing the digital audio data, without anyrequirement to modify applications and/or audio engines, apart fromsimply including the replacement software products in ABIs of theapplications.

Modifications to embodiments of the present disclosure described in theforegoing are possible without departing from the scope of the presentdisclosure as defined by the accompanying claims. Expressions such as“including”, “comprising”, “incorporating”, “consisting of”, “have”,“is” used to describe and claim the present invention are intended to beconstrued in a non-exclusive manner, namely allowing for items,components or elements not explicitly described also to be present.Reference to the singular is also to be construed to relate to theplural.

We claim:
 1. An audio apparatus for a portable device, wherein theportable device includes computing hardware coupled to associated datamemory, wherein the audio apparatus is operable to execute upon thecomputing hardware one or more audio products stored in the data memoryto generate digital audio data for sound-generating hardware, which isoperable to generate acoustic audio signals corresponding to the digitalaudio data, and wherein the one or more audio products include aplurality of audio libraries that the one or more audio products areoperable to call to generate the digital audio data, wherein: the audioapparatus is operable to host one or more replacement audio products,which are storable in the data memory, and are invoked in operation asan alternative to the one or more audio products for generating thedigital audio data, and which capture the digital audio data andsubstantially generating the acoustic audio signals.
 2. The audioapparatus as claimed in claim 1, wherein the one or more audio productscomprise a High Level Audio Library (HLAL) and a Low Level Audio Library(LLAL), wherein the HLAL generates instructions for producing thedigital audio data, and sends the instructions to the LLAL to generateand send the digital audio data to the sound-generating hardware, andwherein the one or more replacement audio products include a ReplacementHigh Level Audio Library (RHLAL) and a Wrapper Library (WL), wherein theRHLAL is operable to provide Application Programming Interfaces (APIs)that are substantially similar to APIs of the HLAL, and the WL isoperable to override function calls to the LLAL to pass through the WL.3. The audio apparatus as claimed in claim 1, wherein the one or morereplacement audio products include an audio capture component forcapturing the digital audio data to be stored in the data memory coupledto the computing hardware and regenerate the acoustic audio signals. 4.The audio apparatus as claimed in claim 1, wherein the portable devicecomprises at least one of: a mobile terminal, a mobile telephone, asmart phone, a Mobile Internet Device (MID), a phablet computer, atablet computer, an Ultra-Mobile Personal Computer (UMPC), a PersonalDigital Assistant (PDA), a web pad, a handheld personal computer, alaptop computer, an interactive entertainment computer, and a gamingterminal.
 5. The audio apparatus as claimed in claim 1, wherein thesound-generating hardware includes at least one of an audio driver oraudio adapter coupled to at least one audio endpoint of the portabledevice for generating the acoustic audio signals, wherein the audiodriver or audio adapter process the digital audio data and generateacoustic audio signals.
 6. The audio apparatus as claimed claim 1,wherein the one or more audio products are proprietary software, whichare configured in a manner that hinders use of the one or more audioproducts to capture the digital audio data generated by the audioapparatus.
 7. A method of operating an audio apparatus for a portabledevice, wherein the portable device includes computing hardware coupledto associated data memory, wherein the audio apparatus is operable toexecute upon the computing hardware an audio product stored in the datamemory to generate digital audio data for sound-generating hardware,which is operable to generate acoustic audio signals corresponding tothe digital audio data, and wherein the audio product includes aplurality of audio libraries that the audio product is operable to callto generate the digital audio data, wherein the method includes: (i)using the audio apparatus to host one or more replacement audioproducts, which are storable in the data memory; and (ii) invoking theone or more replacement audio products as an alternative to the one ormore audio products for generating the digital audio data, wherein theone or more replacement audio products are operable to provide afunctionality of capturing the digital audio data whilst substantiallygenerating the acoustic audio signals.
 8. The method as claimed in claim7, wherein the audio product includes a High Level Audio Library (HLAL)and a Low Level Audio Library (LLAL), wherein the HLAL is operable togenerate instructions for producing the digital audio data, and to sendthe instructions to the LLAL to generate and send the digital audio datato the sound-generating hardware, and wherein the one or morereplacement audio products include a Replacement High Level AudioLibrary (RHLAL) and a Wrapper Library (WL), wherein the RHLAL isoperable to provide Application Programming Interfaces (APIs) that aresubstantially similar to APIs of the HLAL, and the WL is operable tooverride function calls to the LLAL to pass through the WL.
 9. Themethod as claimed in claim 7, wherein the one or more replacement audioproducts include an audio capture component for capturing the digitalaudio data to be stored in the data memory coupled to the computinghardware and used to regenerate acoustic audio signals.
 10. The methodas claimed in claim 7, wherein portable device comprises at least oneof: a mobile terminal, a mobile telephone, a smart phone, a MobileInternet Device (MID), a phablet computer, a tablet computer, anUltra-Mobile Personal Computer (UMPC), a Personal Digital Assistant(PDA), a web pad, a handheld personal computer, a laptop computer, aninteractive entertainment computer, and a gaming terminal.
 11. Themethod as claimed in claim 7, wherein the sound-generating hardwareincludes at least one of an audio driver and audio adapter coupled to atleast one audio endpoint of the portable device for generating theacoustic audio signals, wherein the audio driver and audio adapter areprocess the digital audio data and generate acoustic audio signals. 12.The method as claimed in claim 7, wherein the one or more audio productsare proprietary components configured to prevent using the one or moreaudio products to capture the digital audio data generated by the audioapparatus.
 13. A computer program product comprising computer readableprogram code means stored on non-transitory machine-readable datastorage media, wherein the computer program product is executable uponcomputing hardware of a portable device for implementing a method asclaimed in claim
 7. 14. The computer program product as claimed in claim13, wherein the computer program product is downloadable from anapplication store to the portable device.
 15. A computer program productfor a portable gaming device, comprising: computer readable program codemeans, the computer readable program code means when executed in aprocessor device being configured to: generate digital audio data forsound-generating hardware in the portable gaming device, thesound-generating hardware being configured to generate acoustical audiosignals corresponding to the digital audio data; determine that thesound-generating hardware is prevented from using an audio productassociated with the sound-generating hardware to capture the digitalaudio data to generate the acoustical audio signals; automaticallytransmit the digital audio data to a replacement audio device that ishosted on the portable gaming device, the replacement audio device beingconfigured to capture the digital audio data and generate the acousticaudio signals.
 16. The computer program product of claim 15, wherein theaudio products comprises a High Level Audio Library (HLAL) and a LowLevel Audio Library (LLAL), the HLAL being configured to generateinstructions for producing the digital audio data, and to send thedigital audio data and instructions to the LLAL, the LLAL beingconfigured to generate the digital audio data to the sound-generatinghardware to generate the acoustic audio signals.
 17. The computerprogram product of claim 16, wherein the replacement audio devicecomprises an audio capture device for capturing the digital audio data,a Replacement High Level Audio Library (RHLAL) and a Wrapper Library(WL), the RHLAL configured to provide an application programminginterface (APIs) configured to generate instructions for producing thedigital audio data, the WL being configured to override function callsto the LLAL to pass through the WL.
 18. The computer program product ofclaim 17, wherein the portable gaming device comprises a microphone forcapturing sound to generate the digital audio data and acoustic audiosignals generated from a loudspeaker of the portable gaming device arecaptured as other digital audio data in a memory of the portable gamingdevice.
 19. The computer program product of claim 17, the computerprogram code means, when executed in a processor device being configuredto: determine a type of audio processing required to generate theacoustical audio signals from the digital audio data and acharacteristic of the digital audio data; and automatically call thereplacement audio device comprising the RHLAL to process the digitalaudio data based on the type of audio processing and the characteristicof the digital audio data, wherein the RHLAL provides instructions tothe LLAL to pass the digital audio data to the sound-generating hardwareand an audio capture device, wherein the sound-generating hardwaregenerates the acoustic audio signals corresponding to the digital audiodata.
 20. The computer program product of claim 17, the computer programcode means, when executed in a processor device being configured to:determine a type of audio processing required to generate the acousticalaudio signals from the digital audio data and a characteristic of thedigital audio data; and automatically call the replacement audio devicecomprising the WL to call the LLAL to generate the digital audio data tothe sound-generating hardware and an audio capture device, wherein thesound-generating hardware generates the acoustic audio signalscorresponding to the digital audio data.